package sw

import (
	"errors"

	"blockchain/bccsp"
)

// NewDummyKeyStore
// Dummy 假的
// 实例化一个既不加载也不存储密钥的虚拟密钥库
func NewDummyKeyStore() bccsp.KeyStore {
	return &dummyKeyStore{}
}

// dummyKeyStore 是一个只读 且不能加载并且存储key的 KeyStore
type dummyKeyStore struct{}

// 直接返回true
func (ks *dummyKeyStore) ReadOnly() bool {
	return true
}

// 直接抛错
func (ks *dummyKeyStore) GetKey(ski []byte) (bccsp.Key, error) {
	return nil, errors.New("Key not found. This is a dummy KeyStore")
}

// 存储直接抛错
func (ks *dummyKeyStore) StoreKey(k bccsp.Key) error {
	return errors.New("Cannot store key. This is a dummy read-only KeyStore")
}
